#!/bin/bash

TOTAL_ERRORS=0

readonly VERSION="1.6.0"

version=$(cpplint --version)

if [[ ! $TRAVIS_BRANCH ]]; then
  # install cpplint on local machine.
  if ! [[ $version == *"$VERSION"* ]]; then
    pip install cpplint==1.6.0
  fi
  # diff files on local machine. 
  files=$(git diff --cached --name-status | awk '$1 != "D" {print $2}')
else
  # diff files between PR and latest commit on Travis CI. 
  branch_ref=$(git rev-parse "$TRAVIS_BRANCH")
  head_ref=$(git rev-parse HEAD)
  files=$(git diff --name-status $branch_ref $head_ref | awk '$1 != "D" {print $2}')
fi
# The trick to remove deleted files: https://stackoverflow.com/a/2413151
for file in $files; do
    if [[ $file =~ ^(patches/.*) ]]; then
        continue;
    else
        cpplint --filter=-readability/fn_size,-build/include_what_you_use,-build/c++11,-whitespace/parens $file;
        TOTAL_ERRORS=$(expr $TOTAL_ERRORS + $?);
    fi
done

exit $TOTAL_ERRORS
